// 这里是按共享传递。修改 o.value 可以通过引用找到原值。但是直接修改 o,并不会修改原值
var obj = {
  value: 1
}

function foo (o) {
  o = 2
  console.log(o) // 2
}

foo(obj)

console.log(obj.value) // 1